per pannelli.nascondi
circolare
pannelli.dimensioni
as "dove.stavi dove
cominciaxy meno sdimtx :sdimtyy
as "inizio dove
saltay meno :altezza
ascolriempi colsfondo
blocco prodotto 2 sdimtx :altezza
cominciapos :dove.stavi
fine

per sfondo.conserva.come :nome
as "dove.stavi dove
as "dove.guardavi dir
nastarta
sfondi.attivi
as "xmor meno sdimtx
as "ymor meno sdimty
as "xmend sdimtx
as "ymend sdimty
assegnaareaattiva (lista :xmor :ymor :xmend :ymend)
cominciaxy :xmor :ymor
as "dimtx1 somma sdimtx sdimtx
as "dimty1 somma sdimty sdimty
bloccocopia :dimtx1 :dimty1
as "nome.sfondo (parola :nome ".jpg)
chiudi.se.aperto :nome.sfondo
(bloccoconserva :nome.sfondo "jpg)
STATO.SFONDO.CONSERVATO
cominciapos :dove.stavi
asdir :dove.guardavi
fine

per stato.sfondo.conservato
verifica :verbosetto
se_falso [stop]
TARTA.DOVE.COME.STAVI
as "frase1 [Ho conservato lo sfondo]
as "frase2 [nella cartella degli sfondi di QQ.iplozero]
as "frase (frase :frase1 alfa.virgolette :nome.sfondo :frase2)
PANNELLO.DI.STATO :ROSSO4 :BIANCO :FRASE
TARTA.TORNA.DOVE.COME.STAVI
fine

per pannello.di.stato :colore1 :colore2 :frase
se non cosa? "verbosetto [as "verbosetto "falso]
se non :verbosetto [stop]
pannelli.dimensioni
circolare
as "dove.stavi dove
cominciaxy meno sdimtx :sdimtyy
as "inizio dove
saltay meno :altezza
ascolriempi :colore1
blocco :trequarti :altezza
cominciapos :inizio
saltay :altezza
tahoma :fontsize
ascolpenna :colore2
cominciapos :inizio
saltax :rispettox
saltay meno :rispettoy
scritarta :frase
fine

; Base del sistema logo tridimensionale

per virare :q
locale [l m]
as "l cos :q
as "m sen :q
as "k11 (:l11 * :l + :l21 * :m)
as "k12 (:l12 * :l + :l22 * :m)
as "k13 (:l13 * :l + :l23 * :m)
as "k21 (:l21 * :l - :l11 * :m)
as "k22 (:l22 * :l - :l12 * :m)
as "k23 (:l23 * :l - :l13 * :m)
sostituire
fine

per beccheggiare :q
locale [l m]
as "l cos :q
as "m sen :q
as "k11 (:l11 * :l - :l31 * :m)
as "k12 (:l12 * :l - :l32 * :m)
as "k13 (:l13 * :l - :l33 * :m)
as "k31 (:l31 * :l + :l11 * :m)
as "k32 (:l32 * :l + :l12 * :m)
as "k33 (:l33 * :l + :l13 * :m)
sostituire
fine

per rollare :q
locale [l m]
as "l cos :q
as "m sen :q
as "k21 (:l21 * :l + :l31 * :m)
as "k22 (:l22 * :l + :l32 * :m)
as "k23 (:l23 * :l + :l33 * :m)
as "k31 (:l31 * :l - :l21 * :m)
as "k32 (:l32 * :l - :l22 * :m)
as "k33 (:l33 * :l - :l23 * :m)
sostituire
fine

per sostituire
as "l11 :k11
as "l12 :k12
as "l13 :k13
as "l21 :k21
as "l22 :k22
as "l23 :k23
as "l31 :k31
as "l32 :k32
as "l33 :k33
fine

per camminare :e
as "x3d (:x3d + :e * :l11 * :scala3d)
as "y3d (:y3d + :e * :l12 * :scala3d)
as "z3d (:z3d + :e * :l13 * :scala3d)
disegnare :x3d :y3d :z3d
fine

per disegnare :u :v :w
vaipos (:f3d * :u / (:f3d - :w)) (:f3d * :v / (:f3d - :w))
fine

per vaipos :q :k
; se ambedue (:q < 0) (:q > -2e4) [as "q 0]
; se ambedue (:k < 0) (:k > -2e4) [as "k 0]
vaxy :q :k
fine

as "scala3d 2

per tridimensionale
nt
tana
ps
giu
as "f3d 360
as "k11 0
as "k12 1
as "k13 0
as "k21 -1
as "k22 0
as "k23 0
as "k31 0
as "k32 0
as "k33 1
as "x3d 0
as "y3d 0
as "z3d 0
sostituire
fine

per tricominciaxy :x :y
cominciaxy :x :y
as "f3d 360
as "k11 0
as "k12 1
as "k13 0
as "k21 -1
as "k22 0
as "k23 0
as "k31 0
as "k32 0
as "k33 1
as "x3d 0
as "y3d 0
as "z3d 0
sostituire
fine

per tri
tridimensionale
fine

per rol :gradi
rollare :gradi
fine

per bec :gradi
beccheggiare :gradi
fine

per vir :gradi
virare :gradi
fine

per cam :passi
camminare :passi
fine

per terna
locale "stato
as "stato penna
terna.assi
aspenna :stato
fine

per niente.terna
terna
fine

per terna.assi
locale "axx
locale "p
giulapenna
spessore 1 viola1
as "dovestavi dove
as "doveguardavi dir
as "axx 50
puntino 10 :origine.colore
rosso1 giulapenna
disegnare (:x3d + :axx * :k11) (:y3d + :axx * :k12) (:z3d + :axx * :k13)
cominciapos :dovestavi asdir :doveguardavi
verde1 giulapenna
disegnare (:x3d + :axx * :k21) (:y3d + :axx * :k22) (:z3d + :axx * :k23)
cominciapos :dovestavi asdir :doveguardavi
giallo1 giulapenna
disegnare (:x3d + :axx * :k31) (:y3d + :axx * :k32) (:z3d + :axx * :k33)
cominciapos :dovestavi asdir :doveguardavi
fine

per allontanati :zoom
sulapenna
beccheggiare 90
camminare :zoom
beccheggiare -90
fine

per avvicinati :zoom
sulapenna
beccheggiare 90
camminare meno :zoom
beccheggiare -90
fine

per a.sinistra :tot
sulapenna
virare 90
camminare :tot
virare -90
fine

per in.alto :tot
sulapenna
camminare :tot
fine

per in.basso :tot
sulapenna
camminare meno :tot
fine

per a.destra :tot
sulapenna
virare -90
camminare :tot
virare 90
fine

per puntino :dim :colore
ascolriempi :colore
saltaxy meno prodotto :dim .5 meno prodotto :dim .5
blocco :dim :dim
saltaxy prodotto :dim .5 prodotto :dim .5
fine

per omino.dimensione :dimensione
as "omino.dimensione :dimensione
fine

per omino.colore :colore
as "omino.colore :colore
ascolpenna :omino.colore
fine

per omino.spessore :spessore
as "omino.spessore :spessore
spessore :omino.spessore
fine

per omino.forma :braccio1 :braccio2 :gamba1 :gamba2
as "omino.corpo :omino.dimensione
as "braccio.corpo1 prodotto :omino.dimensione :braccio1
as "braccio.corpo2 prodotto :omino.dimensione :braccio2
as "gamba.corpo1 prodotto :omino.dimensione :gamba1
as "gamba.corpo2 prodotto :omino.dimensione :gamba2
fine

per omino.braccio.destro
virare :braccio.destro1
camminare :braccio.corpo1
virare :braccio.destro2
puntino 6 :rosso1
camminare :braccio.corpo2
puntino 10 :rosso3
camminare meno :braccio.corpo2
virare meno :braccio.destro2
camminare meno :braccio.corpo1
virare meno :braccio.destro1
fine

per omino.braccio.sinistro
virare meno :braccio.sinistro1
camminare :braccio.corpo1
virare meno :braccio.sinistro2
puntino 6 :rosso1
camminare :braccio.corpo2
puntino 10 :rosso3
camminare meno :braccio.corpo2
virare :braccio.sinistro2
camminare meno :braccio.corpo1
virare :braccio.sinistro1
fine

per omino.gamba.destra
virare :gamba.destra1
camminare :braccio.corpo1
virare :gamba.destra2
puntino 6 :rosso1
camminare :braccio.corpo2
puntino 10 :rosso3
camminare meno :braccio.corpo2
virare meno :gamba.destra2
camminare meno :braccio.corpo1
virare meno :gamba.destra1
fine

per omino.gamba.sinistra
virare meno :gamba.sinistra1
camminare :braccio.corpo1
virare meno :gamba.sinistra2
puntino 6 :rosso1
camminare :braccio.corpo2
puntino 10 :rosso3
camminare meno :braccio.corpo2
virare :gamba.sinistra2
camminare meno :braccio.corpo1
virare :gamba.sinistra1
fine

per omino.corpo
camminare :omino.corpo
fine

per omino.testa
virare -90
as "testa.dim prodotto .06 :omino.dimensione
ripeti 36 [camminare :testa.dim virare 10]
virare 90
fine

per omino.articola :bd1 :bd2 :bs1 :bs2 :gd1 :gd2 :gs1 :gs2
as "braccio.destro1 :bd1
as "braccio.destro2 :bd2
as "braccio.sinistro1 :bs1
as "braccio.sinistro2 :bs2
as "gamba.destra1 :gd1
as "gamba.destra2 :gd2
as "gamba.sinistra1 :gs1
as "gamba.sinistra2 :gs2
omino.corpo
omino.testa
omino.braccio.destro
omino.braccio.sinistro
camminare meno :omino.corpo
omino.gamba.destra
omino.gamba.sinistra
fine

per omino :dim :col :spess :bc1 :bc2 :gc1 :gc2 :bd1 :bd2 :bs1 :bs2 :gd1 :gd2 :gs1 :gs2
omino.dimensione :dim
omino.colore :col
omino.spessore :spess
omino.forma :bc1 :bc2 :gc1 :gc2
omino.articola :bd1 :bd2 :bs1 :bs2 :gd1 :gd2 :gs1 :gs2
fine

tarta.apparecchia
sfondogrigio7
as "scala3d 1
as "origine.colore :giallo1
verbosetto.off
as "aspetta 300

tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -50 120 -50 150 10 150 30
sfondo.conserva.come "articolato01

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -40 120 -40 150 10 150 30
sfondo.conserva.come "articolato02

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -30 120 -30 150 10 150 30
sfondo.conserva.come "articolato03

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -20 120 -20 150 10 150 30
sfondo.conserva.come "articolato04

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -10 120 -10 150 10 150 30
sfondo.conserva.come "articolato05

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -20 120 -20 150 10 150 30
sfondo.conserva.come "articolato06

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -30 120 -30 150 10 150 30
sfondo.conserva.come "articolato07

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -40 120 -40 150 10 150 30
sfondo.conserva.come "articolato08

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 120 -50 120 -50 150 10 150 30
sfondo.conserva.come "articolato09

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 130 -60 130 -60 150 10 150 30
sfondo.conserva.come "articolato10

aspetta :aspetta
tridimensionale
omino 120 :giallo1 6 .6 .5 .6 .5 130 -70 130 -70 150 10 150 30
sfondo.conserva.come "articolato11